(function ($) {
    $('.uploader-demo').each(function () {
        var _this = this;

        var $list = $(_this).find('.uploader-list');
        // 优化retina, 在retina下这个值是2
        var ratio = window.devicePixelRatio || 1,
        // 缩略图大小
            thumbnailWidth = 70 * ratio,
            thumbnailHeight = 70 * ratio,
            $thumb = $('#thumb'), //图片隐藏域，上传到数据库的路径值
        // Web Uploader实例
            uploader = 'uploader';
        console.log(uploader);
        uploader = WebUploader.create({

            // 选完文件后，是否自动上传。
            auto: true,

            fileNumLimit: 8,
            // swf文件路径
            swf: SCOPE.swf,
            duplicate: true,

            // 文件接收服务端。
            server: SCOPE.uploadImg,

            // 选择文件的按钮。可选。
            // 内部根据当前运行是创建，可能是input元素，也可能是flash.
            pick: '#filePicker',

            // 只允许选择图片文件。
            accept: {
                title: 'Images',
                extensions: 'gif,jpg,jpeg,bmp,png',
                mimeTypes: 'image/jpg,image/jpeg,image/png'
            }
        });

        // 当有文件添加进来的时候
        uploader.on('fileQueued', function (file) {
            var $li = $(
                    '<div id="' + file.id + '" class="file-item thumbnail" style="border:none;float: left;position: relative;">' +
                    '<img style="float: left;" class="thumbOne">' +
                    '</div>'
                ),
                $img = $li.find('img');

            // $list为容器jQuery实例
            $('#removeImg').remove();
            $('#hideImg').remove();
            $list.html($li);

            // 创建缩略图
            // 如果为非图片文件，可以不用调用此方法。
            // thumbnailWidth x thumbnailHeight 为 100 x 100
            uploader.makeThumb(file, function (error, src) {
                if (error) {
                    $img.replaceWith('<span>不能预览</span>');
                    return;
                }

                $img.attr('src', src);
            }, thumbnailWidth, thumbnailHeight);
        });
        // 文件上传过程中创建进度条实时显示。
        uploader.on('uploadProgress', function (file, percentage) {
            var $li = $('#' + file.id);
            $percent = $li.find('.progress span');

            // 避免重复创建
            if (!$percent.length) {
                $percent = $('<p class="progress"><span></span></p>')
                    .appendTo($li)
                    .find('span');
            }

            $percent.css('width', percentage * 100 + '%');
        });

        // 文件上传成功，给item添加成功class, 用样式标记上传成功。
        uploader.on('uploadSuccess', function (file, resonse) {
            var res = JSON.parse(resonse._raw);
            var data = res.file.url;  //获取后端的json
            console.log(data);
            var jsonobj = eval('"' + data + '"');  //将json 转换成对象

            $thumb.attr('value', jsonobj);
            $('#' + file.id).addClass('upload-state-done');
        });

        // 文件上传失败，显示上传出错。
        uploader.on('uploadError', function (file) {
            var $li = $('#' + file.id),
                $error = $li.find('div.error');

            // 避免重复创建
            if (!$error.length) {
                $error = $('<div class="error"></div>').appendTo($li);
            }

            //$error.text('上传失败');
        });

        // 完成上传完了，成功或者失败，先删除进度条。
        uploader.on('uploadComplete', function (file) {
            $('#' + file.id).find('.progress').remove();
        });
    }),
        $('.uploader-More').each(function () {

            var _this = this;
            var $list = $(_this).find('.uploader-list');
            // 优化retina, 在retina下这个值是2
            var ratio = window.devicePixelRatio || 1,
            // 缩略图大小
                thumbnailWidth = 70 * ratio,
                thumbnailHeight = 70 * ratio,
                $thumb = $('#thumbMore'), //图片隐藏域，上传到数据库的路径值
            // Web Uploader实例
                uploader = 'uploader';

            uploader = WebUploader.create({

                // 选完文件后，是否自动上传。
                auto: true,

                fileNumLimit: 8,
                // swf文件路径
                swf: SCOPE.swf,
                duplicate: true,

                // 文件接收服务端。
                server: SCOPE.uploadImgMore,

                // 选择文件的按钮。可选。
                // 内部根据当前运行是创建，可能是input元素，也可能是flash.
                pick: '#filePickerMore',

                // 只允许选择图片文件。
                accept: {
                    title: 'Images',
                    extensions: 'gif,jpg,jpeg,bmp,png',
                    mimeTypes: 'image/jpg,image/jpeg,image/png'
                }
            });
            // 当有文件添加进来的时候
            var il = 0;
            uploader.on('fileQueued', function (file) {

                var $li = $(
                        '<div class="file-item thumbnail remove-this" style="border:none;float: left;position: relative;">' +
                        '<img style="float: left;">' + '<span class="closeImg" data-id="' + (il++) + '">x</span>' +
                            // '<div class="info">' + file.name + '</div>' +
                        '</div>'
                    ),
                    $img = $li.find('img');

                // $list为容器jQuery实例
                $list.append($li);

                // 创建缩略图
                // 如果为非图片文件，可以不用调用此方法。
                // thumbnailWidth x thumbnailHeight 为 100 x 100
                uploader.makeThumb(file, function (error, src) {
                    if (error) {
                        $img.replaceWith('<span>不能预览</span>');
                        return;
                    }

                    $img.attr('src', src);
                }, thumbnailWidth, thumbnailHeight);
            });
            // 文件上传过程中创建进度条实时显示。
            uploader.on('uploadProgress', function (file, percentage) {
                var $li = $('#' + file.id);

                $percent = $li.find('.progress span');

                // 避免重复创建
                if (!$percent.length) {
                    $percent = $('<p class="progress"><span></span></p>')
                        .appendTo($li)
                        .find('span');
                }

                $percent.css('width', percentage * 100 + '%');
            });

            var i = 0;
            //var arr = [];
            // 文件上传成功，给item添加成功class, 用样式标记上传成功。
            uploader.on('uploadSuccess', function (file, resonse) {

                var form_id = $('#form-id');
                var res = JSON.parse(resonse._raw);
                var data = res.file.url;  //获取后端的json
                //console.log(data);
                var jsonobj = eval('"' + data + '"');  //将json 转换成对象

                //arr.push(jsonobj);
                form_id.append('<input id="da_id' + (i++) + '" type="hidden" name="thumbMore[]" value="' + jsonobj + '" />');


                $('#' + file.id).addClass('upload-state-done');
            });

            // 文件上传失败，显示上传出错。
            uploader.on('uploadError', function (file) {
                var $li = $('#' + file.id),
                    $error = $li.find('div.error');

                // 避免重复创建
                if (!$error.length) {
                    $error = $('<div class="error"></div>').appendTo($li);
                }

                //$error.text('上传失败');
            });

            // 完成上传完了，成功或者失败，先删除进度条。
            uploader.on('uploadComplete', function (file) {
                $('#' + file.id).find('.progress').remove();
            });
        })

})(jQuery);